package com.forum.common.response;

import lombok.Getter;

/**
 * 结果代码枚举类
 */
@Getter
public enum ResultCode {
    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    FAIL(500, "操作失败"),

    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),

    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),

    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),

    /**
     * 用户名或密码错误
     */
    LOGIN_ERROR(1001, "用户名或密码错误"),

    /**
     * 用户已存在
     */
    USER_EXIST(1002, "用户已存在"),

    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1003, "验证码错误"),

    /**
     * 令牌过期
     */
    TOKEN_EXPIRED(1004, "令牌过期"),

    /**
     * 令牌无效
     */
    TOKEN_INVALID(1005, "令牌无效"),

    /**
     * 刷新令牌过期
     */
    REFRESH_TOKEN_EXPIRED(1006, "刷新令牌过期"),

    /**
     * 用户不存在
     */
    USER_NOT_EXIST(1007, "用户不存在");

    /**
     * 代码
     */
    private final Integer code;

    /**
     * 消息
     */
    private final String message;

    /**
     * 构造器
     *
     * @param code    代码
     * @param message 消息
     */
    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
} 